﻿#define _CRT_SECURE_NO_WARNINGS 1

#include<iostream>
using namespace std;
//int cmp_int(const void* e1, const void* e2)
//{
//	return (*(int*)e1) > (*(int*)e2);
//}
//int main()
//{
//	int nums[] = { 8,4,3,2,5,1,6,9,7,0 };
//	int sz = sizeof(nums) / sizeof(nums[0]);
//	qsort(nums, sz, sizeof(nums[0]), cmp_int);
//
//	for (int i = 0; i < sz; i++)
//	{
//		printf("%d ", nums[i]);
//	}
//	system("pause");
//}


//class A
//{
//public:
//	#define add 1
//
//	inline void call()
//	{
//		cout << "inline" << endl;
//	}
//};
//
//int main()
//{
//	cout << add  << endl;
//	A s;
//	s.call();
//	system("pause");
//}




//1. const如果放在 * 的左边，修饰的是指针指向的内容，保证指针指向的内容不能通过指针来改
//变。但是指针变量本身的内容可变。
//2. const如果放在 * 的右边，修饰的是指针变量本身，保证了指针变量的内容不能修改，但是指
//针指向的内容，可以通过指针改变。
//void test2()
//{
//	//代码2
//	int n = 10;
//	int m = 20;
//	const int* p = &n;
//	//*p = 20;//error
//	p = &m; //ok
//}
//void test3()
//{
//	int n = 10;
//	int m = 20;
//	int* const p = &n;
//	*p = 20; //ok
//	//p = &m;  //error
//}
//int main()
//{
//	//测试const放在*的左边
//	test2();
//	//测试const放在*的右边
//	test3();
//	return 0;
//}



//class MyClass {
//private:
//    int data;
//    mutable int counter;
//
//public:
//    void setData(int value) const {
//        data = value;   // 错误，违反常量性
//        counter++;      // 正确，counter是mutable的
//    }
//};
//
//int main()
//{
//    MyClass s1;
//    s1.setData();
//    system("pause");
//}

//
//
//void modifyData(const int& value) {
//    int& ref = const_cast<int&>(value);
//    ref = 10; // 修改被声明为const的对象
//}
//
//int main() {
//    int data = 5;
//    const int& ref = data;
//    modifyData(ref); // 通过const_cast修改对象
//
//    cout << ref << endl;
//    // 现在data的值为10
//    system("pause");
//    return 0;
//}


#include"HashTable.h"
int main()
{
	//XmLife_Hash::TestHT1();
	HashBucket::TestHT1();
	system("pause");
}